Classifying the intent of user input

ABSTRACT

Different types of user inputs can be input by a user via a keyboard of an input device. These different types of user inputs include, for example, key strikes, multi-touch interactions, single finger motions, and/or mouse clicks. Touch information regarding the pressure applied to the keys of a pressure sensitive keyboard over time (or the contact area of the user input for other types of keyboards over time) is used to classify the intent of the user input as one of the various types of user inputs.

RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 119(e) to thefollowing U.S. Provisional Patent Applications, the entire disclosuresof each of these applications being incorporated by reference in theirentirety:

U.S. Provisional Patent Application No. 61/606,321, filed Mar. 2, 2012,and titled “Screen Edge;”

U.S. Provisional Patent Application No. 61/606,301, filed Mar. 2, 2012,and titled “Input Device Functionality;”

U.S. Provisional Patent Application No. 61/606,313, filed Mar. 2, 2012,and titled “Functional Hinge;”

U.S. Provisional Patent Application No. 61/606,333, filed Mar. 2, 2012,and titled “Usage and Authentication;”

U.S. Provisional Patent Application No. 61/613,745, filed Mar. 21, 2012,and titled “Usage and Authentication;”

U.S. Provisional Patent Application No. 61/606,336, filed Mar. 2, 2012,and titled “Kickstand and Camera;” and

U.S. Provisional Patent Application No. 61/607,451, filed Mar. 6, 2012,and titled “Spanaway Provisional.”

BACKGROUND

Computing devices oftentimes have multiple different types of inputmechanisms. These input mechanisms can include, for example, keyboards,virtual keyboards, mice, track pads, and so forth. Although thesedifferent types of mechanisms provide multiple input options for theuser, they are not without their problems. One such problem is thatgiven the number and different types of input mechanisms, it can bedifficult for a user to manage the different input mechanisms,particularly in a mobile setting.

SUMMARY

Classifying the intent of user input techniques are described.

In one or more implementations, touch information regarding a user inputto an input device is obtained. Based on this touch information, anintent of the user input is classified as being either a key strike orone or more other types of input.

In one or more implementations, an input device is configured to providean output that indicates touch information regarding a user input. Thistouch information is usable by one or more modules to determine a userintent in providing the user input.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different instances in thedescription and the figures may indicate similar or identical items.Entities represented in the figures may be indicative of one or moreentities and thus reference may be made interchangeably to single orplural forms of the entities in the discussion.

FIG. 1 is an illustration of an example input device implementing thetechniques described herein.

FIG. 2 is an illustration of an example computing device employing thetechniques described herein.

FIG. 3 is an illustration of the computing device of FIG. 2 displaying avirtual keyboard.

FIGS. 4A and 4B illustrate an example input device with example userinputs.

FIG. 5 is an illustration of a system in an example implementation thatis operable to employ the techniques described herein.

FIG. 6 depicts an example of a graph of pressure at a particularlocation over time.

FIG. 7 depicts another example of a graph of pressure at a particularlocation over time.

FIG. 8 is a flowchart illustrating an example process for implementingthe techniques described herein in accordance with one or moreembodiments.

FIG. 9 is a flowchart illustrating another example process forimplementing the techniques described herein in accordance with one ormore embodiments.

FIG. 10 illustrates an example system including various components of anexample device that can be implemented as any type of computing deviceas described with reference to FIGS. 1-9 to implement embodiments of thetechniques described herein.

DETAILED DESCRIPTION

Overview

Classifying the intent of user input techniques are described. Differenttypes of user inputs can be provided by a user via a keyboard of aninput device. These different types of user inputs include, for example,key strikes, multi-touch interactions, and/or mouse clicks. Forceinformation regarding the pressure applied to a pressure sensitivekeyboard, as well as one or more locations where that pressure isapplied, is used to classify the intent of the user input as one of thevarious types of user inputs. Contact information regarding the contactarea of the user input for other types of keyboards (e.g., capacitiveand/or resistive systems), as well as one or more locations where thatcontact area occurs, may similarly be used to classify the intent of theuser input as one of the various types of user inputs.

In the following discussion, an example environment is first describedthat may employ the techniques described herein. Example procedures arethen described which may be performed in the example environment as wellas other environments. Consequently, performance of the exampleprocedures is not limited to the example environment and the exampleenvironment is not limited to performance of the example procedures.

Example Environment and Procedures

FIG. 1 is an illustration of an example input device 100 implementingthe techniques described herein. In the illustrated example, the inputdevice 100 is configured as a keyboard having a QWERTY arrangement ofkeys although other arrangements of keys are also contemplated. Further,other non-conventional configurations are also contemplated, such as agame controller, a remote control device, a configuration to mimic amusical instrument, and so forth. Thus, the input device 100 and keysincorporated by the input device 100 may assume a variety of differentconfigurations to support a variety of different functionality.

The input device 100 is a multi-use device, supporting various types ofuser inputs. A user input can have various different intents, such as amulti-touch interaction, a key strike, a mouse click, and so forth. Theinput device 100 supports these different types of user inputs in acommon input area, such as the keyboard. For example, the user may touchthe keys “q”, “w”, and “e” on the keyboard, and the intent of thosetouches may be determined to be key strikes selecting the letters “q”,“w”, and “e”. The user may also swipe his or her finger across the keys“q”, “w”, and “e” on the keyboard, and the intent of that swipe may bedetermined to be a multi-touch interaction or single finger motion. Thisdetermination of the intent of the user input is discussed in moredetail below.

The input device 100 may be communicatively coupled to a computingdevice 102. The input device 100 may be physically separate from thecomputing device 102 and communicate with the computing device 102 viaany of a variety of conventional communication mechanisms. For example,the input device 100 may communicate with the computing device via awireless connection, via a wired connection, via communication contactsof the devices 100 and 102 in contact with one another, and so forth.

The computing device 102 may range from full resource devices withsubstantial memory and processor resources to a low-resource device withlimited memory and/or processing resources. The computing device 102 mayalso relate to software that causes the computing device 102 to performone or more operations. In various implementations, the computing device102 may assume a variety of different configurations, such as forcomputer 104, mobile 106, and television 108 uses. Each of theseconfigurations includes devices that may have generally differentconstructs and capabilities, and thus the computing device 102 may beconfigured according to one or more of the different device classes.

For instance, the computing device 102 may be implemented as thecomputer 104 class of a device that includes a personal computer,desktop computer, a multi-screen computer, laptop computer, netbook, andso on. The computing device 102 may also be implemented as the mobile106 class of device that includes mobile devices, such as a mobilephone, portable music player, portable gaming device, a tablet computer,a multi-screen computer, and so on. The computing device 102 may also beimplemented as the television 108 class of device that includes deviceshaving or connected to generally larger screens in casual viewingenvironments. These devices include televisions, set-top boxes, gamingconsoles, and so on.

The computing device 102 also includes an input/output module 110. Theinput/output module 110 is representative of functionality relating toprocessing of inputs and rendering outputs of the computing device 102.A variety of different inputs may be processed by the input/outputmodule 110, such as inputs relating to functions that correspond to keysof the input device 100, inputs that are multi-touch interactions orsingle finger motions recognized through the input device 100 and thatcause operations to be performed that correspond to the multi-touchinteractions or single finger motions, and so forth. Thus, theinput/output module 110 may support a variety of different inputtechniques by recognizing and leveraging a division between types ofinputs including key presses, multi-touch interactions, single fingermotions, and so on.

Alternatively, the input device 100 may be included as part of acomputing device. FIG. 2 is an illustration of an example computingdevice 202 employing the techniques described herein. The computingdevice 202 may assume a variety of different configurations, analogousto computing device 102 of FIG. 1. For example, the computing device 202may be configured for mobile use, such as a mobile phone, a tabletcomputer, and so on. The computing device 202 may also include aninput/output module 204, analogous to input/output module 110 of FIG. 1,and may also relate to software that causes the computing device 202 toperform one or more operations.

The computing device 202 includes a display device 206 via which, in adisplay mode, various data and information can be displayed. The displaydevice 206 may use a variety of display technologies. These displaytechnologies may include, for example, liquid crystal (LCD) displaytechnologies, light-emitting diode (LED) display technologies, organiclight-emitting diode (OLED) display technologies, plasma displaytechnologies, and so forth. Although examples of display technologiesare discussed herein, other display technologies are also contemplated.

The display device 206 can be a touchscreen display, and various userinputs can be provided by the user touching the display device 206. Thecomputing device 202 also supports a keyboard mode in which a virtualkeyboard is displayed. FIG. 3 is an illustration of computing device 202displaying a virtual keyboard 302. Virtual keyboard 302 is a multi-usedevice, supporting various types of user inputs analogous to thekeyboard of input device 100 of FIG. 1. However, rather than being aphysically separate device, the keyboard 302 is a virtual keyboard thatis part of the computing device 202. Thus, the display device 206 alsoserves as the input device in computing device 202.

User inputs to the input device (e.g., the input device 100 of FIG. 1and/or the display device 206 of FIG. 2) are sensed by an input sensingcomponent of the input device. The input device can use a variety ofdifferent input sensing technologies. These input sensing technologiesmay include pressure sensitive systems that sense pressure or force.These input sensing technologies may also include capacitive systemsand/or resistive systems that sense touch. These input sensingtechnologies may also include optical based images that sense reflectionor disruption of light from objects touching (or close to) the surfaceof the display device, such as Sensor in Pixel (SIP) systems, Infraredsystems, optical imaging systems, and so forth. Other types of inputsensing technologies can also be used, such as surface acoustic wavesystems, acoustic pulse recognition systems, dispersive signal systems,and so forth. Although examples of input sensing technologies arediscussed herein, other input sensing technologies are alsocontemplated.

In response to a user touching the keyboard at a particular time, theinput sensing component determines a location that was touched at thatparticular time. Various modules of the input sensing component may usedifferent algorithms or techniques to identify the location that wastouched, and these algorithms or techniques can vary based on theparticular input sensing technology being used. For pressure sensitiveinput sensing components, these various modules also identify the amountof pressure applied at the location that was touched. For other types ofinput sensing components, these various modules also identify the areathat was touched (the contact area).

The determination of a location that is touched can be determined atvarious frequencies, such as 1000 times per second although othersampling frequencies are contemplated. It should be noted that thefrequency at which the determination of a location of a touch is made issufficient to identify whether the user input conforms to thecharacteristics of different user intents. For example, a samplingfrequency of 1000 times per second may be sufficient to determinewhether the user inputs conform to the characteristics of a key strikeintent, whereas lower sampling frequencies (such as 100 times persecond) may not be sufficient to identify whether the user inputsconform to the characteristics of a key strike intent. Thus, in contrastto the input sensing components discussed herein, many input sensingcomponents that determine a location that is touched at a low frequencywould be unable to determine whether the user input conforms to thecharacteristics of some intents.

The input sensing component detects or senses the touch of an object,such as a finger of a user's hand, a stylus, a pen, and so forth. Thediscussions of the classifying the intent of user input techniquesherein refer to the user input being provided by a user's finger (andthus the touch is also referred to as a finger impact), although thisuser input can alternatively be provided by a stylus or other objectcontrolled by the user.

FIGS. 4A and 4B illustrate an example input device 400 with example userinputs. Input device 400 can be, for example, an input device 100 ofFIG. 1 and/or a display device 206 of FIG. 3. The input device 400 is amulti-use device, supporting various types of user inputs. Thesemultiple types of user inputs are supported concurrently. For example,the input device 400 can include a keyboard and the user can providedifferent types of inputs on that keyboard, with the techniquesdiscussed herein being used to automatically determine the intent ofthat user input.

Thus, the touching of the input device 400 can have different userintents, such as a key strike, a mouse click, a single finger motion, ora multi-touch interaction, although other intents or types of user inputare also contemplated. A key strike refers to user selection of aparticular key on the keypad, with different locations of the keyboardbeing associated with different keys. A mouse click refers to thepressing of a button typically associated with a mouse or button of atrack pad. A multi-touch interaction refers to a user touching multiplelocations (e.g., with multiple ones of the user's fingers) concurrentlyto initiate one or functions of a computing device. The multi-touchinteraction can also include a motion or path taken by one or more ofthe user's fingers. For example, a multi-touch interaction may besliding of the user's fingers in one or more particular directions, theuser's fingers tracing one or more particular characters or symbol, andso forth. A single finger motion refers to motion or path taken by theuser's finger to move a cursor, pointer, or other object (e.g., an icon,file, etc. being dragged), or to initiate one or more functions of thecomputing device. A single finger motion intent and a multi-touchinteraction intent can also be referred to as movement intents becausethey typically (although not always for multi-touch interactions)include movement by the user's finger.

FIG. 4A illustrates an example user input the intent of which is a keystrike of the letter “d” or a mouse click. Whether the intent of theuser input was a key strike or a mouse click can be determined indifferent manners, such as based on the characteristics of a key strikeand the characteristics of a mouse click as discussed below.

FIG. 4B illustrates an example user input the intent of which is asingle finger motion moving from left to right. The ending position ofthe user's finger is illustrated using a dashed outline of a hand.Whether the intent of the user input was a single finger motion can bedetermined in different manners, such as based on the distance the touchtravels and/or a velocity of the touch, as discussed in more detailbelow.

As illustrated in FIGS. 4A and 4B, both user inputs begin by touching alocation of the keyboard corresponding to the letter “d”. However, theintent of the user (e.g., a key strike or a multi-touch interaction) canbe determined using the techniques discussed herein. The user need notpress any button or select any menu option to indicate his or her intent(e.g., whether the user desires to input key strikes or multi-touchinteractions). Rather, the user can simply provide his or her input andthe techniques discussed herein automatically determine the intent ofthat input.

The touch, as well as one or more locations of the touch as sensed byone or more sensors as discussed above, is used to classify the intentof a user input, such as classifying the user input as a key strike orother type of input. The user input refers to the touching by the userof one or more portions of the input device. The touch may be sensedusing a dense array of pressure sensors that are sampled at a sufficientfrequency to characterize the touch, as discussed above. The touch mayalternatively be sensed using a capacitive sensor, with the impact beingsensed indirectly by noting the rapid change in coupling as the fingerconforms to the surface and then rebounds. Regardless of the type ofsensors use, the location of the touch can be readily determined basedon (e.g., by interpolating) data from the sensors in the region wherethe touch occurred.

The touch can have associated force information (in situations in whichthe input sensing technologies used include pressure sensitive systems)or contact information (in situations in which other input sensingtechnologies are used). The force information refers to the pressureapplied by the user when touching the keyboard. The contact informationrefers to the area that is touched (the portions of the touchpad ortouchscreen that were touched by the user's finger or other object, theamount of light reflected by the user's finger or other object, etc.) bythe user when touching the keyboard.

In the following discussions, the classifying the intent of user inputtechniques are discussed with reference to force information and a userinput device that is a pressure sensitive device. However, theclassifying the intent of user input techniques can alternatively beimplemented using other types of sensors as discussed above. In suchsituations, rather than using force information to classify the intentof the user input, the contact information is used to classify theintent of the user input. When using the contact information, thecontact area is treated analogously to the pressure discussed below.

FIG. 5 is an illustration of a system 500 in an example implementationthat is operable to employ the techniques described herein. The system500 includes a touch information collection module 502 and an inputclassification module 504. System 500 may be implemented, for example,in the input device 100 and/or the computing device 102 of FIG. 1, orthe computing device 202 of FIGS. 2 and 3. Thus, for example, module 502may be implemented in input device 100 and module 504 may be implementedin computing device 102, both modules 502 and 504 may be implemented ininput device 100, and so forth.

Touch information collection module 502 obtains an indication of theamount of pressure applied by a user's finger over time (oralternatively contact information over time, as discussed above), aswell as the locations of the touch over time, as sensed by the inputsensing component as discussed above. Module 502 obtains (e.g., receivesor generates) touch information 506 regarding user inputs to thekeyboard of the input device. The touch information 506 identifies thecharacteristics of and locations of touches. These characteristics andlocations of a touch can include, for example, the size of the touch(e.g., the amount of area touched), changes in the size of the touchover time, the shape of the touch (e.g., a geographic shape or outlineof the area touched), changes in the shape of the touch over time, thelocation of the touch over time, the change in pressure of the touchover time, the movement of the touch (directions and locations that aretouched), a velocity of the touch, an acceleration of the touch, adistance the touch travels, and so forth.

Based on the touch information 506, input classification module 504classifies the intent of the user input, and outputs or otherwise makesavailable the input intent classification 508. Additional information,such as the touch information 506, can also be output or otherwise madeavailable along with the input intent classification 508. The intent ofthe user input can be, for example, a key strike, a multi-touchinteraction, a mouse click, and so forth as discussed below. The inputintent classification 508 can subsequently be used by one or more othermodules to take the appropriate action based on the user input. Forexample, if the intent is a key strike, then the key associated with thelocation pressed by the user as the user input is recorded as userselection of that key. By way of another example, if the intent is amulti-touch interaction, then the touch information is used to determinewhich multi-touch interaction was input by the user and thecorresponding action taken.

Generally, the intent of the user input is classified based on the touchinformation 506. The force applied by the user's finger over time, andoptionally the one or more locations where that force is applied, isanalyzed in view of characteristics of the different intents supportedby input classification module 504. A user input that conforms to thecharacteristics of a particular intent is classified as that particularintent, whereas a user input that does not conform to thecharacteristics of a particular intent is not classified as thatparticular intent.

In one or more embodiments, the intent of a user input can be classifiedas a key strike, a single finger motion, a multi-touch interaction, orother input. A user input is compared to the characteristics of one ormore of a key strike, a single finger motion, a multi-touch interaction.If the user input conforms to the key strike characteristics then theintent of the user input is classified as a key strike, if the userinput conforms to the single finger motion characteristics then theintent of the user input is classified as a single finger motion, and ifthe user input conforms to the multi-touch interaction characteristicsthen the intent of the user input is classified as a multi-touchinteraction.

Furthermore, if the user input conforms to the characteristics of noparticular intent (e.g., a key strike, a single finger motion, amulti-touch interaction, etc.), then the intent of the user input isclassified as an “other” intent. The other intent refers to some othertype of intent, typically an intent that is filtered out by system 500.Examples of such user inputs that can be classified as an “other” intentcan be the user's hands resting on the keyboard, sensor noise, thedevice being bumped, and so forth. Thus, not only can inputclassification module 504 distinguish between different intents of userinputs to the keyboard, but module 504 can also filter out user inputsto that same keyboard that are not intended to be user inputs to theinput device that are acted upon by the computing device.

A user input intent may be characterized by a force graph shapeindicating the force applied by the user's finger over time for theintent. Different user input intents can have different associated forcegraph shapes, and input classification module 504 can maintain thesedifferent force graph shapes and compare user inputs to these differentforce graph shapes. A user input (as characterized by touch information506) that conforms to the force graph shape for an intent is classifiedas being that particular intent. Whether a user input conforms to aparticular force graph shape can be determined in a variety of differentmanners. For example, a force graph can be generated based on the touchinformation obtained for the user input, and the generated force graphcan be compared to the one or more maintained force graph shapes. If thegenerated force graph shape matches a particular maintained force graphshape, then the user input conforms to the intent associated with thatparticular maintained force graph shape. Whether two graph shapes matchcan be determined using a variety of public and/or proprietary graph orshape matching techniques.

The behavior of a particular touching of the keyboard over a lifetime ofthe touch may be used to classify a user input as a key strike or othertype of input (e.g., a multi-touch interaction or single finger motion).The lifetime of the touch refers to a time duration that begins when theuser's finger touching the surface is sensed and ends when the user'sfinger is no longer sensed as touching the surface. The user's fingercan remain approximately stationary for the lifetime of the touch (e.g.,which may be typical for a key strike), or can move across the keypadduring the lifetime of the touch (e.g., which may be typical formulti-touch interactions and single finger motions).

The intent of a user input may be classified as a movement in responseto the touch travelling at least a threshold distance. This thresholddistance can be a fixed distance (e.g., 1.5 inches) or a relativedistance (e.g., 10% of the width of the keyboard). The travelling of atouch refers to the distance moved by the user's finger while beingmoved along some path during the lifetime of the touch. If multipletouches are sensed concurrently then the intent of the user input may beclassified as a multi-touch interaction, whereas if only a single touchis sensed at a particular time then the intent of the user input at thatparticular time may be classified as a single finger motion.

The intent of a user input may also be classified as a movement inresponse to the touch having at least a threshold velocity and a short(e.g., less than a threshold value) lifetime. The threshold value of thelifetime of the touch may be 0.25 seconds, although other thresholdvalues are contemplated. The velocity of a touch refers to the distancemoved by the user's finger while being moved along some path during thelifetime of the touch divided by the time duration of the lifetime ofthe touch. For example, the velocity may be 4 inches/second, althoughother velocities are contemplated. If multiple touches are sensedconcurrently then the intent of the user input may be classified as amulti-touch interaction, whereas if only a single touch is sensed at aparticular time then the intent of the user input at that particulartime may be classified as a single finger motion.

Generally, a key strike (also referred to as a tap) is characterized bya sharp rise in force followed by a sharp decrease in force as thefinger rebounds from the surface, and optionally followed by a rise inforce again as the momentum of the remainder of the finger continuestowards the surface of the keyboard. The pressure of a touch is analyzedover time, and based on these characteristics of a key strike the userinput is classified as either a key strike or some other type of input(e.g., a multi-touch interaction). User inputs that conform to thesecharacteristics are classified as key strikes, and user inputs that donot conform to these characteristics are classified as other types ofuser inputs. If the user inputs include multiple touches concurrently,then the user input may be classified as multiple key strikes if eachtouch conforms to the characteristics of a key strike and the touchesare for particular locations (e.g., locations corresponding to amodifier key on the keyboard, such as a “shift” key, a “ctrl” key, an“alt” key, and so forth). Alternatively, if the user inputs includemultiple touches concurrently, then the user input is classified as someother type of input rather than a key strike.

It should be noted that these characteristics of a key strike allow theintent of a user input to be distinguished between a key strike and an“other” intent (e.g., the user resting his or her hands on thekeyboard). The key strike is characterized by a particular force graphshape indicating the force applied by the user's finger over time. If auser intends to strike a key then the input conforms to this particularforce graph shape, and if the user intends to rest his or her hands onthe keyboard then the input does not conform to this particular forcegraph shape. Thus a key strike intent or an “other” intent can bereadily determined based on whether the user input conforms to thisparticular force graph shape.

The characteristics of a key strike can also include temporalinformation. For example, the characteristics of a key strike mayinclude the touch being at the same location (not moving) or having alocation that moves less than a threshold amount (e.g., less than thewidth or height of a key on the keyboard, although other thresholdamounts are contemplated).

FIG. 6 depicts an example 600 of a graph of pressure of a touch overtime. The vertical axis is pressure or force (e.g., in grams), and thehorizontal axis is time (e.g., in milliseconds). A line 602 representsthe pressure applied as the touch over time. The pressure applied as thetouch over time can be analyzed to determine whether the pressureapplied conforms to the characteristics of a key strike.

In analyzing the pressure an initial impact time duration may bedetermined, which is a duration of time that begins when the pressureapplied as the touch rises to (e.g., is equal to or greater than) astart threshold amount. This start threshold amount may be 200 grams,although other start threshold amounts are contemplated. This durationof time ends when the pressure applied as the touch reaches a localminimum before rising again (e.g., as the momentum of the remainder ofthe finger continues towards the surface of the keyboard) or thepressure applied as the touch drops to (e.g., is equal to or less than)a stop threshold amount. This stop threshold amount may be the same asthe start threshold amount (e.g., 200 grams) or a lesser amount (e.g.,100 grams), although other values for the stop threshold amount arecontemplated. Thus, the initial impact time duration can be differentfor different user inputs.

In example 600, an initial impact time duration 604 is illustrated. Theinitial impact time duration begins at point 606 where the pressureapplied as the touch rises to the start threshold amount, and ends atpoint 608 where the pressure applied as the touch drops to a localminimum before rising again.

Also in analyzing the pressure a maximum force may be identified. Thismaximum force refers to a local maximum of the pressure applied as thetouch during the initial impact time duration 604 and after the pressureapplied as the touch rises to the start threshold amount. In example600, the maximum force is at point 610.

Given the initial impact time duration and/or the maximum force, variousrules or criteria are applied to determine whether the pressure appliedconforms to the characteristics of a key strike. These rules or criteriamay include an initial impact criteria, a maximum force criteria, and/oran initial impact ending force criteria.

The initial impact criteria refers to the duration of the initial impacttime duration, indicating that the initial impact time duration is to bewithin a particular time range. This particular time range can be, forexample, between 5 milliseconds (ms) and 25 ms, although other timeranges are contemplated. Thus, for example, the initial impact timeduration is to be at least 5 ms and no more than 25 ms in order for thepressure applied as the touch to conform to the characteristics of a keystrike.

The maximum force criteria refers to when, within the initial impacttime duration, the maximum force occurs. The maximum force criteriaindicates that the maximum force is to occur within a threshold amountof time, such as 12 ms although other amounts of time are alsocontemplated. The maximum force criteria also indicates that the maximumforce is not to occur in a last portion of the initial impact timeduration. This last portion may be the last third of the initial impacttime duration, although other portions are contemplated. Thus, forexample, the maximum force is to occur within the first 12 ms of theinitial impact time duration and is not to occur within the last ⅓ ofthe initial impact time duration in order for the pressure applied asthe touch to conform to the characteristics of a key strike.

The initial impact ending force criteria refers to the pressure of thetouch at the end of the initial impact time duration. The initial impactending force criteria indicates that the pressure of the touch at theend of the initial impact time duration is to be less than a particularpercentage of the maximum force. This particular percentage may be 80%,although other percentages are contemplated. Alternatively, the initialimpact ending force criteria can indicate that the pressure of the touchis to be less than another particular percentage of the maximum force inresponse to the maximum force being reached quickly (within a thresholdamount of time). This other particular percentage may be 90% and thethreshold amount of time may be 5 ms, although other percentages andthreshold amounts of time are contemplated. Thus, for example, at theend of the initial impact time duration the pressure of the touch is tobe less than 80% of the maximum force, or less than 90% of the maximumforce if the maximum force was reached within 5 ms, in order for thepressure applied as the touch to conform to the characteristics of a keystrike.

If the initial impact criteria, the maximum force criteria, and theinitial impact ending force criteria all conform to the characteristicsof a key strike, then the pressure applied as the touch conforms to thecharacteristics of a key strike and the user input is classified as akey strike. However, if one or more of the initial impact criteria, themaximum force criteria, and the initial impact ending force criteriadoes not conform to the characteristics of a key strike, then thepressure applied as the touch does not conform to the characteristics ofa key strike and the user input is not classified as a key strike.

Characteristics of a key strike are discussed above. Characteristics ofother types of inputs can also be maintained. The pressure of a touchmay be analyzed over time and a determination made as to whether theuser input conforms to the characteristics of another type of input.User inputs that conform to the characteristics of another type of inputare classified as that other type of input, while user inputs that donot conform to the characteristics of that other type input are notclassified as that other type of input.

For example, a mouse click may be characterized by a slow rise in forcefollowed by a sharp decrease in force as the finger rebounds from thesurface. The pressure of a touch is analyzed over time, and based onthese characteristics of a mouse click the user input is classified aseither a mouse click or some other type of input (e.g., a key strike).User inputs that conform to these characteristics are classified asmouse clicks, and user inputs that do not conform to thesecharacteristics are classified as other types of user inputs.

The characteristics of a mouse click can also include temporalinformation. For example, the characteristics of a mouse click mayinclude the touch being at the same location (not moving) or having alocation that moves less than a threshold amount (e.g., 0.25 inches,although other threshold amounts are contemplated).

FIG. 7 depicts an example 700 of a graph of pressure of a touch overtime. The vertical axis is pressure or force (e.g., in grams), and thehorizontal axis is time (e.g., in milliseconds). A line 702 representsthe pressure applied as the touch over time. The pressure applied as thetouch over time can be analyzed to determine whether the pressureapplied conforms to the characteristics of a mouse click.

In analyzing the pressure a touch time duration may be determined, whichis a duration of time that begins when the pressure applied as the touchrises to (e.g., is equal to or greater than) a start threshold amount.This start threshold amount may be 200 grams, although other startthreshold amounts are contemplated. This duration of time ends when thepressure applied as the touch drops to (e.g., is equal to or less than)a stop threshold amount. This stop threshold amount may be the same asthe start threshold amount (e.g., 200 grams) or a lesser amount (e.g.,100 grams), although other values for the stop threshold amount arecontemplated.

In example 700, a touch time duration 704 is illustrated. The touch timeduration begins at point 706 where the pressure applied as the touchrises to the start threshold amount, and ends at point 708 where thepressure applied as the touch drops to the stop threshold amount.

Also in analyzing the pressure a maximum force may be identified. Thismaximum force refers to a local maximum of the pressure applied as thetouch during the touch time duration 704 and after the pressure appliedas the touch rises to the start threshold amount. In example 700, themaximum force is at point 710.

Given the touch time duration and/or the maximum force, various rules orcriteria are applied to determine whether the pressure applied conformsto the characteristics of a mouse click. These rules or criteria mayinclude rules or criteria referring to when the maximum force occurs.The rules or criteria may indicate that the maximum force is to occur atleast a threshold amount of time (e.g., 25 ms, although other amounts oftime are also contemplated) after the pressure applied as the touchrises to the start threshold amount. The rules or criteria may indicatethat the maximum force is not to occur in a beginning portion of thetouch time duration. This beginning portion may be the beginning half ofthe touch time duration, although other portions are contemplated. Thus,for example, the rules or criteria may indicate that the maximum forceis to occur at least 25 ms after the touch time duration beginning, andis not to occur within the first half of the touch time duration inorder for the pressure applied as the touch to correspond to thecharacteristics of a mouse click.

As indicated above, although discussed herein with reference to forceinformation and a user input device that is a pressure sensitive inputdevice, the classifying the intent of user input techniques canalternatively be implemented using other types of sensors and inputsensing technologies. In such situations, rather than using the pressureapplied by a user input to classify the intent of the user input, thecontact area of the user input (the portions of the touchpad ortouchscreen that were touched by the user's finger or other object, theamount of light reflected by the user's finger or other object, etc.)may be used to classify the intent of a user input. The contact area(e.g., measured in millimeters or other units) is treated analogously tothe pressure discussed above. For example, referring to FIG. 5, a keystrike is characterized by a sharp rise in contact area followed by asharp decrease in contact area as the finger or other object touchingthe surface rebounds from the surface, and optionally followed by a risein contact area again as the momentum of the remainder of the finger orother object touching the surface of the keyboard continues towards thesurface.

FIG. 8 is a flowchart illustrating an example process 800 forimplementing the techniques described herein in accordance with one ormore embodiments. Process 800 is carried out by an input classificationmodule, such as input classification module 504 of FIG. 5, and can beimplemented in software, firmware, hardware, or combinations thereof.Process 800 is shown as a set of acts and is not limited to the ordershown for performing the operations of the various acts. Process 800 isan example process for implementing the techniques described herein;additional discussions of implementing the techniques described hereinare included herein with reference to different figures.

In process 800, touch information regarding a user input to an inputdevice is obtained (act 802). This touch information can be obtainedfrom a pressure sensitive input device, or other types of input devices(e.g., capacitive or resistive) as discussed above.

Based on the obtained touch information, an intent of the user input isclassified as being a key strike or other type of input (act 804). Theclassification is performed based on characteristics of a key strike orother type of input, as discussed above. Various other types of inputscan be received as user inputs, such as multi-touch interactions, asingle finger motions, and mouse clicks as discussed above.

An indication of the classification of the user input is output (act806). This classification can be used by one or more other modules(e.g., of computing device 102 of FIG. 1) to take the appropriate actionbased on the user input. This classification can be output to, forexample, one or more modules of the input device 104 and/or thecomputing device 102 of FIG. 1.

FIG. 9 is a flowchart illustrating another example process 900 forimplementing the techniques described herein in accordance with one ormore embodiments. Process 900 is carried out by an input classificationmodule, such as input classification module 504 of FIG. 5, and can beimplemented in software, firmware, hardware, or combinations thereof.Process 900 is shown as a set of acts and is not limited to the ordershown for performing the operations of the various acts. Process 900 isan example process for implementing the techniques described herein;additional discussions of implementing the techniques described hereinare included herein with reference to different figures.

In process 900, when a user input is received (e.g., the user touchesthe keyboard), a check is made as to whether the touch travels athreshold distance (act 902). This threshold distance can be a fixed orrelative distance, such as 1.5 inches or 10% of the width of thekeyboard, as discussed above.

If the touch travels a threshold distance (e.g., at least the thresholddistance, equal to or greater than the threshold distance, etc.), thenthe touch is classified as a movement (act 904). A movement can be, forexample, a single finger motion or a multi-touch interaction, asdiscussed above. Whether the movement is a single finger motion or amulti-touch interaction can be determined in different manners. Forexample, if during the time of the touch multiple touches (e.g.,multiple fingers) are sensed concurrently then the movement is amulti-touch interaction, whereas if during the time of the touch just asingle touch (e.g., a single finger) is sensed then the movement is asingle finger motion. By way of another example, if the input devicedoes not support (or is operating in a mode that does not support)multi-touch interactions, then the movement is a single finger motion.By way of another example, if the input device does not support (or isoperating in a mode that does not support) single finger motions, thenthe movement is a multi-touch interaction.

However, if the touch does not travel the threshold distance, then acheck is made as to whether the lifetime of the touch is less than athreshold amount (act 906). If the lifetime of the touch is less than athreshold amount (e.g., less than 0.25 seconds), then a check is made asto whether the touch has a threshold velocity (act 908). This thresholdvelocity can be, for example, 4 inches/second or other velocities asdiscussed above. If the touch has a threshold velocity (e.g., at leastthe threshold velocity, equal to or greater than the threshold velocity,etc.), then the touch is classified as a movement (act 904). A movementcan be, for example, a single finger motion or a multi-touchinteraction, as discussed above.

However, if the lifetime of the touch is not less than the thresholdamount, or if the touch does not have the threshold velocity, then acheck is made as to whether initial impact criteria are satisfied (act910). The initial impact criteria are satisfied if the initial impacttime duration is within a particular time range (e.g., at least 5 ms andno more than 25 ms), as discussed above.

If the initial impact criteria are not satisfied, then the touch isclassified as neither a movement nor a key strike (act 912). In suchsituations, the touch may be interpreted as some default input (e.g.,the user resting his or her fingers on the keyboard), or alternativelymay be further analyzed to determine the intent of the user input (e.g.,a mouse click, as discussed above).

However, if the initial impact criteria are satisfied, then a check ismade as to whether maximum force criteria are satisfied (act 914). Themaximum force criteria are satisfied if the maximum force occurs duringa particular portion of the initial impact time duration (e.g., withinthe first 12 ms of the initial impact time duration, or during the first⅔ of the initial impact time duration), as discussed above.

If the maximum force criteria are not satisfied, then the touch isclassified as neither a movement nor a key strike (act 912).

However, if the maximum force criteria are satisfied, then a check ismade as to whether initial impact ending force criteria are satisfied(act 916). The initial impact ending force criteria are satisfied if thepressure on the key at the end of the initial impact time duration isless than a particular percentage of the maximum force (e.g., less than80% of the maximum force, or less than 90% of the maximum force if themaximum force occurred in the first 5 ms of the initial impact timeduration), as discussed above.

If the initial impact ending force criteria are not satisfied, then thetouch is classified as neither a movement nor a key strike (act 912).However, if the initial impact ending force criteria are satisfied, thenthe touch is classified as a key strike (act 918).

Example System and Device

FIG. 10 illustrates an example system generally at 1000 that includes anexample computing device 1002 that is representative of one or morecomputing systems and/or devices that may implement the varioustechniques described herein. The computing device 1002 may, for example,be configured to assume a mobile configuration through use of a housingformed and size to be grasped and carried by one or more hands of auser, illustrated examples of which include a mobile phone, mobile gameand music device, and tablet computer although other examples are alsocontemplated.

The example computing device 1002 as illustrated includes a processingsystem 1004, one or more computer-readable media 1006, and one or moreI/O interfaces 1008 that are communicatively coupled, one to another.Although not shown, the computing device 1002 may further include asystem bus or other data and command transfer system that couples thevarious components, one to another. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures. Avariety of other examples are also contemplated, such as control anddata lines.

The processing system 1004 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 1004 is illustrated as including hardware elements 1010 that maybe configured as processors, functional blocks, and so forth. This mayinclude implementation in hardware as an application specific integratedcircuit or other logic device formed using one or more semiconductors.The hardware elements 1010 are not limited by the materials from whichthey are formed or the processing mechanisms employed therein. Forexample, processors may be comprised of semiconductor(s) and/ortransistors (e.g., electronic integrated circuits (ICs)). In such acontext, processor-executable instructions may beelectronically-executable instructions.

The computer-readable storage media 1006 is illustrated as includingmemory/storage 1012. The memory/storage 1012 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage component 1012 may include volatile media (such as randomaccess memory (RAM)) and/or nonvolatile media (such as read only memory(ROM), Flash memory, optical disks, magnetic disks, and so forth). Thememory/storage component 1012 may include fixed media (e.g., RAM, ROM, afixed hard drive, and so on) as well as removable media (e.g., Flashmemory, a removable hard drive, an optical disc, and so forth). Thecomputer-readable media 1006 may be configured in a variety of otherways as further described below.

Input/output interface(s) 1008 are representative of functionality toallow a user to enter commands and information to computing device 1002,and also allow information to be presented to the user and/or othercomponents or devices using various input/output devices. Examples ofinput devices include a keyboard, a cursor control device (e.g., amouse), a microphone, a scanner, touch functionality (e.g., capacitiveor other sensors that are configured to detect physical touch), a camera(e.g., which may employ visible or non-visible wavelengths such asinfrared frequencies to recognize movement as gestures that do notinvolve touch), and so forth. Examples of output devices include adisplay device (e.g., a monitor or projector), speakers, a printer, anetwork card, tactile-response device, and so forth. Thus, the computingdevice 1002 may be configured in a variety of ways to support userinteraction.

The computing device 1002 is further illustrated as beingcommunicatively and physically coupled to an input device 1014 that isphysically and communicatively removable from the computing device 1002.In this way, a variety of different input devices may be coupled to thecomputing device 1002 having a wide variety of configurations to supporta wide variety of functionality. In this example, the input device 1014includes one or more keys 1016, which may be configured as pressuresensitive keys, keys on a touchpad or touchscreen, mechanically switchedkeys, and so forth.

The input device 1014 is further illustrated as including one or moremodules 1018 that may be configured to support a variety offunctionality. The one or more modules 1018, for instance, may beconfigured to process analog and/or digital signals received from thekeys 1016 to determine whether a keystroke was intended, determinewhether an input is indicative of resting pressure, supportauthentication of the input device 1014 for operation with the computingdevice 1002, classify the intent of user input, and so on. Modules 1018may include, for example, the input classification module 504 of FIG. 5.

Although illustrated as separate from the computing device 1002, theinput device 1014 can alternatively be included as part of the computingdevice 1002 as discussed above. In such situations, the keys 1016 andthe modules 1018 are included as part of the computing device 1002.Additionally, in such situations the keys 1016 may be keys of a virtualkeyboard and/or keys of a non-virtual keyboard (e.g., a pressuresensitive input device).

Various techniques may be described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof. The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesmay be implemented on a variety of commercial computing platforms havinga variety of processors.

An implementation of the described modules and techniques may be storedon or transmitted across some form of computer-readable media. Thecomputer-readable media may include a variety of media that may beaccessed by the computing device 1002. By way of example, and notlimitation, computer-readable media may include “computer-readablestorage media” and “computer-readable signal media.”

“Computer-readable storage media” may refer to media and/or devices thatenable persistent and/or non-transitory storage of information incontrast to mere signal transmission, carrier waves, or signals per se.Thus, computer-readable storage media refers to non-signal bearingmedia. The computer-readable storage media includes hardware such asvolatile and nonvolatile, removable and non-removable media and/orstorage devices implemented in a method or technology suitable forstorage of information such as computer readable instructions, datastructures, program modules, logic elements/circuits, or other data.Examples of computer-readable storage media may include, but are notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical storage, harddisks, magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or other storage device, tangible media, orarticle of manufacture suitable to store the desired information andwhich may be accessed by a computer.

“Computer-readable signal media” may refer to a signal-bearing mediumthat is configured to transmit instructions to the hardware of thecomputing device 1002, such as via a network. Signal media typically mayembody computer readable instructions, data structures, program modules,or other data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, hardware elements 1010 and computer-readablemedia 1006 are representative of modules, programmable device logicand/or fixed device logic implemented in a hardware form that may beemployed in some embodiments to implement at least some aspects of thetechniques described herein, such as to perform one or moreinstructions. Hardware may include components of an integrated circuitor on-chip system, an application-specific integrated circuit (ASIC), afield-programmable gate array (FPGA), a complex programmable logicdevice (CPLD), and other implementations in silicon or other hardware.In this context, hardware may operate as a processing device thatperforms program tasks defined by instructions and/or logic embodied bythe hardware as well as a hardware utilized to store instructions forexecution, e.g., the computer-readable storage media describedpreviously.

Combinations of the foregoing may also be employed to implement varioustechniques described herein. Accordingly, software, hardware, orexecutable modules may be implemented as one or more instructions and/orlogic embodied on some form of computer-readable storage media and/or byone or more hardware elements 1010. The computing device 1002 may beconfigured to implement particular instructions and/or functionscorresponding to the software and/or hardware modules. Accordingly,implementation of a module that is executable by the computing device1002 as software may be achieved at least partially in hardware, e.g.,through use of computer-readable storage media and/or hardware elements1010 of the processing system 1004. The instructions and/or functionsmay be executable/operable by one or more articles of manufacture (forexample, one or more computing devices 1002 and/or processing systems1004) to implement techniques, modules, and examples described herein.

CONCLUSION

Although the example implementations have been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the implementations defined in the appended claims isnot necessarily limited to the specific features or acts described.Rather, the specific features and acts are disclosed as example forms ofimplementing the claimed features.

What is claimed is:
 1. A method comprising: obtaining touch informationregarding a single finger touching a keyboard of an input device, theinput device supporting multiple different user intents for the singlefinger touching the keyboard, the obtaining comprising obtaining forceinformation; and automatically determining, based on the touchinformation, which of the multiple different user intents is intendedfor the single finger touching the keyboard, the multiple different userintents including a key strike, a mouse click, and a single fingermotion, the determining including: determining that the user intentintended for the single finger touching the keyboard is the key strikein response to the touch information conforming to characteristics ofthe key strike, determining that the user intent intended for the singlefinger touching the keyboard is the mouse click in response to the touchinformation conforming to characteristics of the mouse click, thecharacteristics of the key strike indicating that the force applied bythe single finger touching the keyboard rises faster than thecharacteristics of the mouse click indicate, determining that the userintent intended for the single finger touching the keyboard is thesingle finger motion in response to the touch information conforming tocharacteristics of the single finger motion.
 2. The method as recited inclaim 1, the input device comprising multiple pressure sensors thatsense the single finger touching the keyboard, and the obtainingcomprising obtaining force information.
 3. The method as recited inclaim 1, the input device comprising a capacitive system that senses thesingle finger touching the keyboard, and the obtaining comprisingobtaining contact information.
 4. The method as recited in claim 1, thedetermining that the user intent is the single finger motion comprisingdetermining that the user intent is the single finger motion in responseto the single finger travelling a threshold distance across thekeyboard.
 5. The method as recited in claim 1, the determining that theuser intent is the single finger motion comprising determining that theuser intent is the single finger motion in response to the single fingerhaving a threshold velocity across the keyboard.
 6. The method asrecited in claim 1, the input device comprising an input device that isphysically separate from and communicatively removable from a computingdevice.
 7. The method as recited in claim 1, the determining comprisingdetermining which of the multiple different user intents is intended bycomparing the touch information to one or more graphs representing userinput intents, and determining whether the key strike or the mouse clickis intended based on an intent associated with the one of the one ormore graphs with which the touch information conforms.
 8. The method asrecited in claim 1, the determining comprising determining which of themultiple different user intents is intended for the single fingertouching the keyboard in the absence of another option or buttonselection by a user to indicate which of the multiple different userintents is intended.
 9. The method as recited in claim 1, furthercomprising: using the touch information to identify a location of thekeyboard touched by the single finger touching the keyboard; andrecording a user selection of a key associated with the location inresponse to determining that the user intent intended for the singlefinger touching the keyboard is the key strike, but not recording theuser selection of the key associated with the location in response todetermining that the user intent intended for the single finger touchingthe keyboard is the mouse click or the single finger motion.
 10. Anapparatus comprising an input device configured to provide an outputthat indicates touch information regarding a single finger touching akeyboard of the input device, the touch information including forceinformation, the input device supporting multiple different user intentsfor the single finger touching the keyboard of the input device, themultiple different user intents including a key strike, a mouse click,and a single finger motion, the output being usable by one or moremodules to automatically classify the user intent for the single fingertouching the keyboard as the key strike in response to the touchinformation conforming to characteristics of the key strike, classifythe user intent for the single finger touching the keyboard as the mouseclick in response to the touch information conforming to characteristicsof the mouse click, and classify the user intent for the single fingertouching the keyboard as the single finger motion in response to thetouch information conforming to characteristics of the single fingermotion, the characteristics of the key strike indicating that the forceapplied by the single finger touching the keyboard rises faster than thecharacteristics of the mouse click indicate.
 11. The apparatus asrecited in claim 10, the input device comprising a pressure sensitiveinput device.
 12. The apparatus as recited in claim 11, the touchinformation comprising information indicating changes in locations wherepressure is applied to the keyboard of the pressure sensitive inputdevice over time as well as changes in pressure applied to the keyboardover time.
 13. The apparatus as recited in claim 10, the apparatusincluding the one or more modules.
 14. The apparatus as recited in claim10, the output being usable by the one or more modules to automaticallyclassify the user intent for the single finger touching keyboard in theabsence of another option or button selection by a user to indicatewhich of the multiple different user intents is intended.
 15. Theapparatus as recited in claim 10, the input device comprising an inputdevice that is physically separate from and communicatively removablefrom a computing device.
 16. The apparatus as recited in claim 10,further comprising: the output being usable by the one or more modulesto record a user selection of a key associated with a location of thekeyboard touched by the single finger in response to classifying theuser intent for the single finger touching the keyboard as the keystrike, but not record the user selection of the key associated with thelocation in response to classifying the user intent for the singlefinger touching the keyboard as the mouse click or the single fingermotion.
 17. An apparatus comprising: a hardware processor; andcomputer-readable storage devices having stored thereon multipleinstructions that, responsive to execution by the processor, cause theprocessor to perform operations comprising: obtaining touch informationregarding a single finger touching a keyboard of an input device, thetouch information comprising force information, the input devicesupporting multiple different user intents for the single fingertouching the keyboard; and automatically determining, based on the touchinformation, which of the multiple different user intents is intendedfor the single finger touching the keyboard, the multiple different userintents including a key strike, a mouse click, and a single fingermotion, and the determining including: determining that the user intentintended for the single finger touching the keyboard is the key strikein response to the touch information conforming to characteristics of akey strike, determining that the user intent intended for the singlefinger touching the keyboard is the mouse click in response to the touchinformation conforming to characteristics of the mouse click, thecharacteristics of the key strike indicating that the force applied bythe single finger touching the keyboard rises faster than thecharacteristics of the mouse click indicate, and determining that theuser intent intended for the single finger touching the keyboard is thesingle finger motion in response to the touch information conforming tocharacteristics of the single finger motion.
 18. The apparatus asrecited in claim 17, the apparatus including the input device.
 19. Theapparatus as recited in claim 17, the single finger touching thekeyboard comprising a single touch user input, and the touch informationcomprising force information indicating pressure applied to the keyboardby the single touch user input.
 20. The apparatus as recited in claim17, the single finger touching the keyboard comprising a single touchuser input, and the touch information comprising contact informationindicating an area of the keyboard that is touched by the single touchuser input.